#ifndef __SERVER_H__
#define __SERVER_H__

// 导入项目头文件
#include<head.h>
#include "user.h"

#define MAX_CLIENTS 10   // 服务器可以同时连接的最大客户端数量
#define BUFFER_SIZE 1024 // 用于接收和发送消息的缓冲区大小
#define NAME_SIZE 20     // 客户端名称的最大长度


typedef struct TCP_fd // 服务端套接字结构体
{
    char name[NAME_SIZE]; // 客户端的名称
    int soc_fd; // 服务器套接字文件描述符
    int acc_fd; // 客户端套接字文件描述符
} TCP_fd;

TCP_fd TCP_init(char const *port_num, char const  *IP_addr, TCP_fd fd); // 初始化TCP套接字
// 广播消息给所有连接的客户端
void broadcast_message(const char *message);
// 处理与客户端通信的函数，在单独的线程中运行
void *handle_client(void *client_socket); 
TCP_fd TCP_accept(TCP_fd fd); // 接受客户端连接
void rece_pack(TCP_fd * fd);
void *send_pack(void *acc_fd);
int thread_send_rece(int acc_fd);
void TCP_close(TCP_fd fd);


#endif
